package com.itlong.cloud.POJO.DTO.property;

import com.itlong.cloud.POJO.DTO.BaseDTO;
import com.itlong.cloud.POJO.PO.TimeTaskAuthDeviceAddressInfoPO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * <desc>
 *      物业-云对讲-添加数据传输对象
 * </desc>
 *
 * @createDate 2017/09/21
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper=false)
public class PropertyCloudIntercomSaveDTO extends BaseDTO implements Serializable {


    //云对讲和云电梯sn
    private String sn;

    //设备类型：1-电梯 2-门禁 3-云对讲
    private Integer deviceType;

    //云对讲类型 31-门口机 32-围墙机
    private Integer smartType;

    //电梯类型 11-云电梯 12-蓝牙电梯 13外呼设备
    private Integer elevatorType;

    //是否配置蓝牙电梯
    private Integer isBluetoothElevator;

    //是否支持人脸识别 0代表否 1代表是
    private Integer isFaceRecognition;

    //是否收费 0代表否 1代表是
    private Integer isCollectFees;

    //公共楼层
    private String commonFloor;

    //设备机号
    private String deviceId;

    //设备唯一码
    private String deviceUnique;

    //设备名称
    private String deviceName;

    //设备归属楼栋ID集合，多个以，分隔
    private String buildIds;

    //设备归属单元ID集合，多个以，分隔
    private String unitIds;

    // 产品型号ID,如"1700003415"，与“产品信号信息表”中的type_pid一致
    private String productTypeId;

    //电梯服务开始层数
    private Integer floorNo;

    //电梯服务结束层数
    private Integer floorNoMax;

    //设备说明
    private String deviceMemo;

    //签名私钥，实际为签名私钥文件存储位置。
    private String signSecretKey;

    //签名公钥，实际为签名公钥文件存储位置。
    private String signPubKey;

    //是否是只有设备名称改变
    private Boolean isOnlyNameChange;
    //绑定电梯设备序列号
    private String elevatorDeviceUnique;
    //电梯naturalfloor
    private Integer elevatorFloor;
    //外呼绑定电梯信息
    private String callBindInfo;
    //用户所拥有的地址信息集合
    private List<UserDeviceAuthAddreddDTO> userDeviceAuthAddreddDTOs;

   /* //更新前后变化的地址转化成unitId集合
    private List<String> changedUnitIdList;*/

    //设备启用状态 1-启用 2-禁用 0-删除
    private Integer status;

    //门禁类别 1楼栋门禁2单元门禁 3普通门禁
    private Integer entranceType;

    //支持功能 1数字读头 2身份证 3二维码 4手机蓝牙 5刷卡 6人脸识别 多个以逗号隔开
    private String supportFunction;

    //设备地址变更影响用户权限信息PO
    private TimeTaskAuthDeviceAddressInfoPO timeTaskAuthDeviceAddressInfoPO;

    //门禁类型 11-蓝牙门禁 12-云门禁
    private Integer entranceCategory;

    //正背门 0背门 1-正门
    private Integer liftDoorType;
    private Integer equipMode;              // 设备模式，1普通，2收费

    //批次号
    private String batchNumber;

    //外呼控制器绑定电梯机号
    private String elevatorDeviceUniques;

    //真实楼层
    private Integer floorNums;

    //进场呼梯标准开关：1开启 0关闭
    private Integer blueToothCallStandard;

    public PropertyCloudIntercomSaveDTO(String projectId,String deviceUnique, Integer deviceType, String deviceId, String deviceName,
                                        Integer floorNo, Integer floorNoMax, String buildIds, String unitIds) {
        this.deviceType = deviceType;
        this.deviceId = deviceId;
        this.deviceUnique = deviceUnique;
        this.deviceName = deviceName;
        this.buildIds = buildIds;
        this.unitIds = unitIds;
        this.floorNo = floorNo;
        this.floorNoMax = floorNoMax;
        super.setProjectId(projectId);
    }

    public PropertyCloudIntercomSaveDTO(String projectId,String deviceUnique, Integer deviceType, String deviceId, String deviceName,
                                        String buildIds, String unitIds) {
        this.deviceType = deviceType;
        this.deviceId = deviceId;
        this.deviceUnique = deviceUnique;
        this.deviceName = deviceName;
        this.buildIds = buildIds;
        this.unitIds = unitIds;
        super.setProjectId(projectId);
    }
}